package com.ruoyi.pg.evaluate.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import io.swagger.annotations.*;

/**
 * 评估对象 pg_assessment
 *
 * @author Ming
 * @date 2025-09-09
 */
@Data
@Accessors(chain = true)
@ToString(callSuper = true)
@ApiModel(value = "PgAssessment", description = "用户实体")
public class PgAssessment extends BaseEntity {

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 编号
     */
    @ApiModelProperty("编号")
    private Long no;

    /**
     * 评估名称
     */
    @ApiModelProperty("评估名称")
    private String name;

    /**
     * 模板id
     */
    @ApiModelProperty("模板id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long tempId;

    /**
     * 计划id
     */
    @ApiModelProperty("计划id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long planId;

    /**
     * 计划时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty("计划时间")
    private Date planendTime;

    /**
     * 状态 1进行中 2已完成
     */
    @ApiModelProperty("状态 1进行中 2已完成")
    private String status;

    /**
     * 评估结果
     */
    @ApiModelProperty("评估结果")
    private String result;

    /**
     * 评估人员id
     */
    @ApiModelProperty("评估人员id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long evaluateId;

    /**
     * 评估人员签名
     */
    @ApiModelProperty("评估人员签名")
    private String evaluateSign;

    /**
     * 评估人员签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty("评估人员签名时间")
    private Date evaluateSignTime;

    /**
     * 协助人员姓名
     */
    @ApiModelProperty("协助人员姓名")
    private String assistName;

    /**
     * 协助人员签名
     */
    @ApiModelProperty("协助人员签名")
    private String assistSign;

    /**
     * 协助人员签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty("协助人员签名时间")
    private Date assistSignTime;

    /**
     * 信息提供者姓名
     */
    @ApiModelProperty("信息提供者姓名")
    private String provName;

    /**
     * 信息提供者签名
     */
    @ApiModelProperty("信息提供者签名")
    private String provSign;

    /**
     * 信息提供者签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty("信息提供者签名时间")
    private Date provSignTime;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 是否删除 1-正常 2-删除
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty("是否删除 1-正常 2-删除")
    private String deleteStatus;

    /**
     * 评估地点
     */
    @ApiModelProperty("评估地点")
    private String evaluateLocation;

    /**
     * 评估完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty("评估完成时间")
    private Date completeTime;

}
